package ModelLayer;
import java.util.ArrayList;

/**
 * Indeholder information om VarerContainer. 
 */
public class VarerContainer
{
    private static VarerContainer instance;
    private Varer varer;
    private ArrayList<Varer> nyVare;

    /**
     * Constructor for objects of class VarerContainer
     */
    private VarerContainer()
    {
       nyVare = new ArrayList<Varer>();
    }

    /**
     * @return Returns the instance.
     */
    public static VarerContainer getInstance()
    {
        if(instance == null)
        {
            instance = new VarerContainer();
        }

        return instance;
    }

    /**
     * @param Id, Beskrivelse, Varenavn, Pris. 
     */
    public void tilfoejVarer(Varer varer)
    {
        nyVare.add(varer);
    }

    /**
     * @return Retunere et varer objekt.
     * @param int Id.
     */
    public Varer findVare(int id)
    {
        for(Varer varer : nyVare){
            if(varer.getId() == id)
                return varer;
        }

        return null;
    }

     /**
     * Bruges til at finde et varer eksemplar.
     * @param long serienummer.
     */
    public Varer findVareEksemplar(long serienummer)
    {
        for(Varer varer : nyVare){
            if(varer.findEksemplar(serienummer) != null)
                return varer;
        }

        return null;
    }

    /**
     * @return Fjerner en varer.
     * @param int Id.
     */
    public void fjernVare(int id)
    {
        Varer vare = findVare(id);
        nyVare.remove(vare);
    }

    /**
     * @return Returnere en list med alle varer i listen
     */
    public ArrayList<Varer> printAlleVarer()
    {
        return nyVare;
    }

     /**
     * Bruges til at fjerne et vareeksemplar.
     * @param long serienummer.
     */
    public boolean fjernVareEksemplar(long serienummer)
    {
        Varer varer = findVareEksemplar(serienummer);

        if(varer == null)
            return false;

        varer.fjernEksemplar(varer.findEksemplar(serienummer));

        return true;
    }
}